package io.mft.redis.util;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

import lombok.extern.slf4j.Slf4j;

/**
 * 
 * 描述: 对象序列化
 * 版权: Copyright (c) 2008 
 * 公司: 思迪科技 
 * 作者: 刘宝
 * 版本: 1.0 
 * 创建日期: 2015-9-8 
 * 创建时间: 下午09:41:31
 */
@Slf4j
public class SerializeHelper
{
	
	/**
	 * 
	 * 描述：序列化对象
	 * 作者：刘宝
	 * 时间：2015-9-8 下午09:44:17
	 * @param object
	 * @return
	 */
	public static byte[] serialize(Object object)
	{
		try
		{
			//序列化
			ByteArrayOutputStream baos = new ByteArrayOutputStream();
			ObjectOutputStream oos = new ObjectOutputStream(baos);
			oos.writeObject(object);
			byte[] bytes = baos.toByteArray();
			return bytes;
		}
		catch (Exception e)
		{
			log.error("", e);
		}
		return null;
	}
	
	/**
	 * 
	 * 描述：反序列化对象
	 * 作者：刘宝
	 * 时间：2015-9-8 下午09:46:15
	 * @param bytes
	 * @return
	 */
	public static Object unserialize(byte[] bytes)
	{
		try
		{
			//反序列化
			ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
			ObjectInputStream ois = new ObjectInputStream(bais);
			return ois.readObject();
		}
		catch (Exception e)
		{
			log.error("", e);
		}
		return null;
	}
}
